from torchvision import datasets, transforms
import numpy as np

# 读取数据方法如下

# 读取or下载读取数据集,不做处理
minist_data = datasets.MNIST("./", train=True, download=True,
                             transform=transforms.Compose([transforms.ToTensor(), ]))  # 下载数据，如果不存在会自动下载,并将其转化为tensor
print(minist_data)  # 输出所有数据
print(minist_data[0][0].shape)  # 输出数据大小
data = [d[0].data.cpu().numpy() for d in minist_data]
mean = np.mean(data)  # 求均值
std = np.std(data)  # 平方差
print("数据的均值为：{},方差为：{}".format(mean, std))

# # 下载训练集
# mnist = datasets.MNIST('./', train=True, download=True, transform=transforms.Compose(
#     [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]))

# 下载训练集
mnist = datasets.MNIST('./', train=True, download=True, transform=transforms.Compose(
    [transforms.ToTensor(), transforms.Normalize((mean,), (std,))]))
